package com.im.service.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.im.service.common.Result;
import com.im.service.domain.entity.ImGroup;
import com.im.service.domain.entity.ImGroupUser;

import java.util.List;

/**
 * <p>
 * im-群用户 服务类
 * </p>
 *
 * @author 刘志强
 * @since 2024-07-03
 */
public interface ImGroupUserService extends IService<ImGroupUser> {

    /**
     * 获取用户的群组
     *
     * @param userId
     * @return
     */
    List<ImGroup> getGroupListByUserId(Long userId);

    /**
     * 批量添加群成员
     *
     * @param groupId
     * @param userIds
     * @return
     */
    Result batchAddGroupUser(Long groupId, List<Long> userIds);

    /**
     * 我得群组
     *
     * @param userId
     * @return
     */
    Result<List<ImGroup>> myGroup(Long userId);

    /**
     * 加入群聊
     *
     * @param imGroup
     * @param userId
     * @param userType
     */
    void addGroupUser(ImGroup imGroup, Long userId, Integer userType);

    /**
     * 移除群聊
     *
     * @param imGroup
     * @param groupUserId
     * @param type        类型 1 结算群 2 移除群聊
     */
    void removeGroupUser(ImGroup imGroup, Long groupUserId, Integer type);


}
